const { isJSRequest } = require("../../utils");
const send = require("../send");
const transformRequest = require("../transformRequest");
function transformMiddleware(server) {
  return async function (req, res, next) {
    if (req.method !== "GET") return next();
    // 获取路径名 /src/main.js?id=1#top parse 会解析 成一个对象 pathname=/src/main.js query={id:1}
    // let pathname = parse(req.url).pathname;
    // 如果请求的资源是JS的话，重写第三方模块的路径
    if (isJSRequest(req.url)) {
      // 此处传的一定是req.url,如果只传pathname会丢失query.
      // 而我们后面会写vue插件，会依赖查询参数
      const result = await transformRequest(req.url, server);
      if (result) {
        // 发送转化后的代码内容
        return send(req, res, result.code, "js");
      } else {
        // 没有该文件, 跳过
        return next();
      }
    } else {
      // 非js文件, 跳过
      return next();
    }
  };
}
module.exports = transformMiddleware;
